namespace mgp.utils {

    /**
     * 返回 03:22:13 这种类型的时间格式
     * @param timeStamp 时间戳
     */
    export function hmsFormat(timeStamp: number) {
        let nd = new Date(timeStamp);

        let hh = nd.getHours();
        let mm = nd.getMinutes();
        let ss = nd.getSeconds();
        return `${hh > 9 ? hh : '0' + hh}:${mm > 9 ? mm : '0' + mm}:${ss > 9 ? ss : '0' + ss}`;
    }

    /**
     * timer的单次延迟调用
     * @param delay 延迟时间，单位：ms
     * @param caller 调用者
     * @param method 回调
     * @param args 回调的参数
     * @param coverBefore 是否覆盖上次的回调，需要下面的 coverTimeKey 一起使用
     * @param coverTimeKey 需要覆盖上次回调的key，和 coverBefore 一起使用
     */
    export function timerOnce(delay: number, caller: any, method: Function, args?: Array<any>, coverBefore?: boolean, coverTimeKey?: number): number {
        if (coverBefore && coverTimeKey) {
            clearTimeout(coverTimeKey);
        }
        args = args || [];
        let t = setTimeout(method.bind(caller), delay, ...args);
        debugLog('开始单次延迟, id:', t)
        return t;
    }
}